package GUI;

import Domein.Deelname;
import Domein.SpelerDeelname;
import Domein.Spelronde;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import layout.TableLayout;

/**
 *
 * @author Tim
 */
public class RatioOverzicht {

    public Controller gc;
    Controllers.RatioOverzicht cro;

    JTable table;
    DefaultTableModel model = new DefaultTableModel();
    public JButton terug;
    public JComboBox keuzeBox;

    double b = 10; // Border
    double f = TableLayout.FILL; // Fill
    double p = TableLayout.PREFERRED; //Preferred
    double vs = 5;// Vertical space between labels and text fields
    double vg = 10; // Vertical gap between form elements
    double hg = 10; // Horizontal gap between form elements

    /**
     *
     * @param gc
     */
    public RatioOverzicht(Controller gc) {
        this.gc = gc;
    }

    /**
     *
     */
    public void createGUI() {
        cro = new Controllers.RatioOverzicht(this);
        gc.changeTitle("Ratio Overzicht");

        double size[][] = {
            {b, p, f, b},
            {b, p, b, f, b}
        };
        
        gc.setLayout(new TableLayout(size));

        JPanel switchPanel = new JPanel();
        terug = new JButton("Terug naar het spel");
        JLabel keuzeLabel = new JLabel("Maak een keuze");
        String keuzes[] = {"Huidig spel","Van begin af aan"};
        keuzeBox = new JComboBox(keuzes);
        //keuzeBox.addItemListener(cro);

        terug.addActionListener(cro);
        keuzeBox.addActionListener(cro);

        switchPanel.add(terug);
        //switchPanel.add(keuzeLabel);
        //switchPanel.add(keuzeBox);


        table = new JTable(model);
        model.setColumnCount(0);
        model.setRowCount(0);

        model.addColumn("Ronde");
        model.addColumn("Speler");
        model.addColumn("Kaarten");
        model.addColumn("Waarde");
        model.addColumn("Inzet");
        model.addColumn("Gewonnen/verloren");

        int rondeNr = 0;

        for(Spelronde r : gc.spel.ronden){
            rondeNr++;
            if(rondeNr != gc.spel.ronden.size()){
                for(Deelname d : r.deelname){
                    if(d instanceof SpelerDeelname){
                        SpelerDeelname sd = (SpelerDeelname)d;
                        String status = (sd.handen.get(0).gewonnen)? "Gewonnnen" : "Verloren";
                        String item[] = {""+rondeNr,
                                        sd.speler.getGebruikersnaam(),
                                        sd.handen.get(0).getKaarten(),
                                        ""+sd.handen.get(0).getTotaalwaarde(),
                                        ""+sd.handen.get(0).inzet,
                                        status};
                        vulTabel(item);
                    }
                }
            }
        }

        table.setPreferredScrollableViewportSize(new Dimension(300,350));
        table.setDragEnabled(false);
        table.setFillsViewportHeight(true);
        JScrollPane scrollPane = new JScrollPane(table);

        gc.add(switchPanel, "1, 1");
        gc.add(scrollPane, "1, 3, 2, 3");
    }

    /**
     *
     * @param data
     */
    public void vulTabel(String data[]) {
        model.addRow(data);
    }

}
